﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using System.Collections;
using Proxy;
using System.Web.Services;
using System.Text;
using SIM.Util;

namespace SIM.Geo.UI.Geo
{

    public partial class frmMuestra1 : PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.rgLista.ClientSettings.Scrolling.ScrollHeight = int.Parse(System.Configuration.ConfigurationManager.AppSettings["listaPrincipalScrollHeight"]);
                string id = Request.Params["id"].ToString();
                this.hidCodigoSondaje.Value = id;
                CargarSondaje();

                //this.rsbMuestra.Visible = false;
                this.ddlMuestraDuplicada.Visible = false;
                CargarCombos();
                Listar();
            }
            this.txtCodigo.Attributes.Add("onkeypress", "return solonumerosypunto(event);");
            this.txtCodigo.Attributes.Add("onBlur", "return FormatearCodigo();");

        }

        private void CargarSondaje()
        {
            try
            {
                using (SESondajeClient proxy = new SESondajeClient("BasicHttpBinding_ISESondaje"))
                {
                    this.txtNombreSondaje.Enabled = false;
                    var sondaje = proxy.ObtenerSondaje(int.Parse(this.hidCodigoSondaje.Value));
                    if (sondaje != null)
                    {
                        this.txtNombreSondaje.Text = sondaje.NombreDDH;
                        this.hidEstadoSondaje.Value = sondaje.Estado.ToString();
                        this.hidCumplimiento.Value = sondaje.CumplioMuestra.ToString();
                        if (sondaje.Estado.CompareTo((short)enmEstadoSondaje.Finalizado.GetHashCode()) == 0 ||
                            sondaje.CumplioMuestra.CompareTo((short)enmEstadoCumplimiento.Cumplido.GetHashCode()) == 0)
                        {
                            this.ibtnRegistrar.Enabled = false;
                            this.ibtnRegistrar.ToolTip = BUTTON_TOOLTIP_DESHABILITADO;
                            this.ibtnFinalizar.Enabled = false;
                            this.ibtnFinalizar.ToolTip = BUTTON_TOOLTIP_DESHABILITADO;
                        }

                        //Finalizado
                        if (sondaje.Estado.CompareTo((short)enmEstadoSondaje.Finalizado.GetHashCode()) == 0)
                            this.txtEstado.Text = enmEstadoSondaje.Finalizado.ToString();
                        else
                            this.txtEstado.Text = enmEstadoSondaje.Iniciado.ToString();

                        //Cumplimiento
                        if (sondaje.CumplioMuestra.CompareTo((short)enmEstadoCumplimiento.Cumplido.GetHashCode()) == 0)
                            this.txtCumplimiento.Text = enmEstadoCumplimiento.Cumplido.ToString();
                        else
                            this.txtCumplimiento.Text = enmEstadoCumplimiento.Pendiente.ToString();

                        if (sondaje.CodigoClaseSondaje.CompareTo(enmClaseSondaje.DDH.GetHashCode()) == 0)
                        {
                            this.lnkNavigator.Text = "Sondaje";
                            this.lnkNavigator.PostBackUrl = "frmSondaje1.aspx";
                            this.hidTipoMuestra.Value = enmTipoMuestra.Sondaje.GetHashCode().ToString();
                        }
                        else
                        {
                            this.lnkNavigator.Text = "Taladros largos";
                            this.lnkNavigator.PostBackUrl = "frmTaladroLargo.aspx";
                            this.hidTipoMuestra.Value = enmTipoMuestra.TaladroLargo.GetHashCode().ToString();
                        }

                    }
                }
                this.lblTitleModal.Text = "SONDAJE: " + this.txtNombreSondaje.Text;
            }
            catch (Exception ex)
            {

                Logger.Error("MuestraSondaje:CargarSondaje", ex);
            }
        }

        protected override void Listar()
        {
            try
            {
                using (var proxy = new SEMuestraSondajeClient("BasicHttpBinding_ISEMuestraSondaje"))
                {
                    var lista = proxy.BuscarMuestraSondajePorSondaje(int.Parse(this.hidCodigoSondaje.Value)).ToList();
                    this.rgLista.DataSource = lista;

                    this.rgLista.DataBind();

                    #region Captura ultimo Hasta
                    //Captura ultimo Hasta y coloca como Desde para registrar nuevo
                    this.hidDesde.Value = "0";
                    if (lista != null && lista.Count > 0)
                    {
                        double hasta = (double)lista.Select(x => x.Hasta).Max();
                        this.hidDesde.Value = hasta.ToString();
                    }
                    #endregion
                }

            }
            catch (Exception ex)
            {

                Logger.Error("MuestraSondaje:Listar", ex);
            }
        }
        private void CargarCombos()
        {
            try
            {
                using (SEGeologoClient proxy = new SEGeologoClient("BasicHttpBinding_ISEGeologo"))
                {
                    this.Bind(this.ddlGeologo, proxy.ObtenerListItem().ToList());
                    this.ddlGeologo.Items.Insert(0, new ListItem(Constantes.TipoSeleccion.SELECCIONE, TipoDropDownList.Seleccionar.GetHashCode().ToString()));
                }

                using (SETomadorMuestraClient proxy = new SETomadorMuestraClient("BasicHttpBinding_ISETomadorMuestra"))
                {
                    this.Bind(this.ddlTomadorMuestra, proxy.ObtenerListItem().ToList());
                    this.ddlTomadorMuestra.Items.Insert(0, new ListItem(Constantes.TipoSeleccion.SELECCIONE, TipoDropDownList.Seleccionar.GetHashCode().ToString()));
                }

                using (SETipoControlCalidadClient proxy = new SETipoControlCalidadClient("BasicHttpBinding_ISETipoControlCalidad"))
                {
                    this.Bind(this.ddlTipoControlCalidad, proxy.ObtenerListItem().ToList());
                    this.ddlTipoControlCalidad.Items.Insert(0, new ListItem(Constantes.TipoSeleccion.SELECCIONE, TipoDropDownList.Seleccionar.GetHashCode().ToString()));
                }

            }
            catch (Exception ex)
            {

                Logger.Error("MuestraSondaje:CargarCombos", ex);
            }
        }

        protected void rgLista_DeleteCommand(object sender, GridCommandEventArgs e)
        {
            try
            {
                string codigoMuestraSondaje = ((GridDataItem)e.Item).GetDataKeyValue("CodigoMuestraSondaje").ToString();
                using (var proxy = new SEMuestraSondajeClient("BasicHttpBinding_ISEMuestraSondaje"))
                {
                    proxy.EliminarMuestraSondaje(codigoMuestraSondaje);
                }
                this.Listar();
                this.MostrarMensaje(MSG_OK_ELIMINAR);
            }
            catch (Exception ex)
            {
                this.MostrarMensaje(MSG_ERROR_ELIMINAR, enmTipoMensajeMostrar.Error);
                Logger.Error("MuestraSondaje:rgLista_DeleteCommand", ex);
            }
        }

        protected void imgclose_click(object sender, EventArgs e)
        {
            this.mpRegistro.Hide();
        }

        protected void rgLista_PageIndexChanged(object sender, GridPageChangedEventArgs e)
        {
            Listar();
        }

        protected void rgLista_SortCommand(object sender, GridSortCommandEventArgs e)
        {
            Listar();
        }

        protected override void Limpiar()
        {
            this.txtCodigo.Text = string.Empty;
            this.hidCodigo.Value = "0";
            this.txtDesde.Value = 0;
            this.txtHasta.Value = 0;
            this.ddlGeologo.SelectedValue = TipoDropDownList.Seleccionar.GetHashCode().ToString();
            this.ddlTomadorMuestra.SelectedValue = TipoDropDownList.Seleccionar.GetHashCode().ToString();
            this.rdpFechaEnvio.SelectedDate = null;
            this.rtxtDescripcion.Text = string.Empty;
            this.ddlTipoControlCalidad.SelectedValue = enmTipoCalidad.Comun.GetHashCode().ToString();

            this.txtDesde.Text = this.hidDesde.Value;
            OcultarMensaje();
            OcultarMensajeValidacion();
            this.ddlMuestraDuplicada.Visible = false;
        }

        private void Habilitar(bool estado = true)
        {
            //this.txtCodigo.Enabled  = estado;
            this.txtDesde.Enabled = estado;
            this.txtHasta.Enabled = estado;
            this.ddlGeologo.Enabled = estado;
            this.ddlTomadorMuestra.Enabled = estado;
            this.rdpFechaEnvio.Enabled = estado;
            this.rtxtDescripcion.Enabled = estado;
            this.ddlTipoControlCalidad.Enabled = estado;

            this.ddlMuestraDuplicada.Enabled = estado;
            this.ibtnGuardar.Visible = estado;
        }

        private void CargarDatos(string codigoMuestraSondaje)
        {
            try
            {
                using (var proxy = new SEMuestraSondajeClient("BasicHttpBinding_ISEMuestraSondaje"))
                {
                    var item = proxy.ObtenerMuestraSondaje(codigoMuestraSondaje);
                    if (item != null)
                    {
                        this.hidCodigo.Value = item.CodigoMuestraSondaje.ToString();

                        //Vuelve a cargar los Sondajes duplicadas
                        var lista = proxy.ObtenerListItem1(int.Parse(this.hidCodigoSondaje.Value), enmTipoCalidad.Comun.GetHashCode()).Where(x => x.Value != this.hidCodigo.Value).ToList();
                        this.Bind(this.ddlMuestraDuplicada, lista);
                        this.ddlMuestraDuplicada.Items.Insert(0, new ListItem(Constantes.TipoSeleccion.SELECCIONE, TipoDropDownList.Seleccionar.GetHashCode().ToString()));

                        this.txtCodigo.Text = item.CodigoMuestraSondaje.ToString().Substring(0, 7);
                        this.txtDesde.Text = item.Desde.ToString();
                        this.txtHasta.Text = item.Hasta.ToString();
                        this.ddlGeologo.SelectedValue = item.CodigoGeologo.ToString();
                        this.ddlTomadorMuestra.SelectedValue = item.CodigoTomadorMuestra.ToString();
                        this.rdpFechaEnvio.SelectedDate = item.FechaEnvio;
                        this.rtxtDescripcion.Text = item.Observacion.ToString();
                        this.ddlTipoControlCalidad.SelectedValue = item.CodigoTipoControlCalidad.ToString();
                        ddlTipoControlCalidad_SelectedIndexChanged(null, null); //Configura la validacion por tipo control de calidad

                        if (!string.IsNullOrEmpty(item.CodigoMuestraSondajeDuplicado))
                        {
                            this.ddlMuestraDuplicada.SelectedValue = item.CodigoMuestraSondajeDuplicado;
                            //this.ddlMuestraDuplicada.Visible = true;
                            //HabilitarDuplicados(false);
                        }
                        else
                        {
                            this.ddlMuestraDuplicada.SelectedValue = "0";
                            //this.ddlMuestraDuplicada.Visible = false;
                            //HabilitarDuplicados(true);
                        }

                        this.txtCodigo.Enabled = false;
                    }
                }
            }
            catch (Exception ex)
            {

                Logger.Error("Muestra:CargarDatos", ex);
            }
        }
        protected void rgLista_ItemCommand(object sender, GridCommandEventArgs e)
        {
            if (e.CommandName.CompareTo("Editar") == 0)
            {
                var item = (GridEditableItem)e.Item;
                string codigoMuestraSondaje = item.GetDataKeyValue("CodigoMuestraSondaje").ToString();

                //Carga detalle de sondaje
                Habilitar(true);
                this.CargarDatos(codigoMuestraSondaje);
                this.txtCodigo.Enabled = false;

                OcultarMensaje();
                OcultarMensajeValidacion();
                this.mpRegistro.Show();
            }
            if (e.CommandName.CompareTo("Ver") == 0)
            {
                var item = (GridEditableItem)e.Item;
                string codigoMuestraSondaje = item.GetDataKeyValue("CodigoMuestraSondaje").ToString();
                //Carga detalle de sondaje                
                this.CargarDatos(codigoMuestraSondaje);
                Habilitar(false);
                OcultarMensaje();
                OcultarMensajeValidacion();
                this.mpRegistro.Show();
            }

            if (e.CommandName == RadGrid.FilterCommandName)
            {
                Listar();
            }
        }

        public string codigoMuestrasondaje { get; set; }

        protected void imgClose_Click(object sender, ImageClickEventArgs e)
        {
            this.mpRegistro.Hide();
        }

        protected void ddlTipoControlCalidad_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (int.Parse(this.ddlTipoControlCalidad.SelectedValue) == enmTipoCalidad.Duplicadas.GetHashCode())
            {
                this.cvHasta.Operator = ValidationCompareOperator.GreaterThan;
                this.cvDesde.Operator = ValidationCompareOperator.LessThan;
                this.txtDesde.Enabled = true;
                this.txtHasta.Enabled = true;
                this.txtDesde.CssClass = string.Empty;
                this.txtHasta.CssClass = string.Empty;
                this.ddlMuestraDuplicada.Visible = true;
                HabilitarDuplicados(false);
            }
            else
            {
                this.cvHasta.Operator = ValidationCompareOperator.GreaterThan;
                this.cvDesde.Operator = ValidationCompareOperator.LessThan;
                this.txtDesde.Enabled = true;
                this.txtHasta.Enabled = true;
                this.txtDesde.CssClass = string.Empty;
                this.txtHasta.CssClass = string.Empty;
                this.ddlMuestraDuplicada.Visible = false;
                this.ddlMuestraDuplicada.SelectedValue = TipoDropDownList.Seleccionar.GetHashCode().ToString();
                HabilitarDuplicados(true);
            }

            //Para el caso de Tipo Blanco y Estandar Desde y Hasta es Cero
            if (int.Parse(this.ddlTipoControlCalidad.SelectedValue) == enmTipoCalidad.Blanco.GetHashCode() ||
                int.Parse(this.ddlTipoControlCalidad.SelectedValue) == enmTipoCalidad.Estandar.GetHashCode())
            {
                this.cvHasta.Operator = ValidationCompareOperator.GreaterThanEqual;
                this.cvDesde.Operator = ValidationCompareOperator.LessThanEqual;
                this.txtDesde.Text = "0";
                this.txtHasta.Text = "0";
                this.txtDesde.Enabled = false;
                this.txtHasta.Enabled = false;
                this.txtDesde.CssClass = CSS_INPUT_DISABLED;
                this.txtHasta.CssClass = CSS_INPUT_DISABLED;
            }
        }

        protected void ibtnExportar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                Listar();
                string alternateText = "ExcelML";
                this.rgLista.ExportSettings.Excel.Format = (GridExcelExportFormat)Enum.Parse(typeof(GridExcelExportFormat), alternateText);
                this.rgLista.ExportSettings.IgnorePaging = true;
                this.rgLista.ExportSettings.ExportOnlyData = true;
                this.rgLista.ExportSettings.OpenInNewWindow = true;
                this.rgLista.MasterTableView.ExportToExcel();
            }
            catch (Exception ex)
            {

                Logger.Error("MuestraSondaje:ibtnExportar_Click", ex);
            }
        }

        protected void ibtnRegistrar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                Limpiar();
                this.txtCodigo.Enabled = true;
                using (var proxy = new SEMuestraSondajeClient("BasicHttpBinding_ISEMuestraSondaje"))
                {
                    //this.txtCodigo.Text = proxy.GenerarCodigoMuestraSondaje();                    

                    var lista = proxy.ObtenerListItem1(int.Parse(this.hidCodigoSondaje.Value), enmTipoCalidad.Comun.GetHashCode()).Where(x => x.Value != this.hidCodigo.Value).ToList();
                    this.Bind(this.ddlMuestraDuplicada, lista);
                    this.ddlMuestraDuplicada.Items.Insert(0, new ListItem(Constantes.TipoSeleccion.SELECCIONE, TipoDropDownList.Seleccionar.GetHashCode().ToString()));

                }
                ddlTipoControlCalidad_SelectedIndexChanged(null, null); //Configura la validacion por tipo control de calidad
                Habilitar(true);
                this.lblTitleModal.Text = "SONDAJE: " + this.txtNombreSondaje.Text;
                this.mpRegistro.Show();
                this.txtCodigo.Focus();

            }
            catch (Exception ex)
            {

                Logger.Error("MuestraSondaje:ibtnRegistrar_Click", ex);
            }
        }

        #region Mensajes
        protected override void MostrarMensajeValidacion(string mensaje)
        {
            this.pnlMensajeValidacion.Visible = true;
            this.lblMensajeValidacion.Text = mensaje;
        }

        protected override void OcultarMensajeValidacion()
        {
            this.pnlMensajeValidacion.Visible = false;
            this.lblMensajeValidacion.Text = string.Empty;
        }

        protected override void MostrarMensaje(string mensaje, enmTipoMensajeMostrar tipoMensaje = enmTipoMensajeMostrar.Informativa)
        {
            this.pnlMensaje.Visible = true;
            this.lblMensaje.Text = mensaje;
            this.pnlMensaje.CssClass = this.ObtenerEstiloMensaje(tipoMensaje);
        }

        protected override void OcultarMensaje()
        {
            this.pnlMensaje.Visible = false;
            this.lblMensaje.Text = string.Empty;
        }

        #endregion

        protected override bool Validar(ref  StringBuilder sb)
        {
            bool retorno = true;
            try
            {
                //Validacion de rangos desde y hasta se valida para el caso Sondaje
                if (this.hidTipoMuestra.Value.CompareTo(enmTipoMuestra.Sondaje.GetHashCode().ToString()) == 0)
                {
                    double espacioDesdeHasta = double.Parse(System.Configuration.ConfigurationManager.AppSettings["espacioEntreDesdeHasta"].ToString());
                    string result = new Reglas().ValidacionDesdeHasta(espacioDesdeHasta, int.Parse(this.ddlTipoControlCalidad.SelectedValue), double.Parse(this.txtDesde.Text), double.Parse(this.txtHasta.Text));
                    if (result.CompareTo("Ok") != 0)
                    {
                        sb.AppendLine(result);
                        retorno = false;
                    }
                }

                //Valido los duplicados
                if (this.ddlTipoControlCalidad.SelectedValue.CompareTo(enmTipoCalidad.Duplicadas.GetHashCode().ToString()) == 0)
                {
                    if (this.ddlMuestraDuplicada.SelectedValue.CompareTo(TipoDropDownList.Seleccionar.GetHashCode().ToString()) == 0)
                    {
                        sb.AppendLine("No ha seleccionado Muestra Duplicada.");
                        retorno = false;
                    }
                }

                //Valido las intersecciones
                using (var proxy = new SEMuestraSondajeClient("BasicHttpBinding_ISEMuestraSondaje"))
                {
                    int resultInterseccion = proxy.ValidarInterseccionMuestraSondaje(int.Parse(this.hidCodigoSondaje.Value), this.hidCodigo.Value, double.Parse(this.txtDesde.Text), double.Parse(this.txtHasta.Text), int.Parse(this.ddlTipoControlCalidad.SelectedValue));
                    if (resultInterseccion == 1)
                    {
                        sb.AppendLine("Existen intersección en las muestras.");
                        retorno = false;
                    }
                }
            }
            catch (Exception ex)
            {
                retorno = false;
                MostrarMensajeValidacion(MSG_ERROR_GENERICO);
                Logger.Error("MuestraSondaje:Validar", ex);
            }
            return retorno;
        }

        protected override void Guardar()
        {
            //base.Guardar();
            try
            {
                StringBuilder sb = new StringBuilder();

                string numero = string.Empty;

                #region Valido el Numero Ingresado
                if (this.hidCodigo.Value.CompareTo("0") == 0)
                {
                    //SI ES NUEVO VALIDA LA EXISTENCIA DE CODIGO DE MUESTRA GENERADO
                    using (var proxy = new SECodigoMuestraClient("BasicHttpBinding_ISECodigoMuestra"))
                    {
                        numero = proxy.ObtenerCodigoMuestraGenerado(short.Parse(this.hidTipoMuestra.Value), int.Parse(this.txtCodigo.Text.Trim()));
                        if (numero.CompareTo("NOEXISTE") == 0)
                        {
                            sb.AppendLine("Código de muestra ingresado no existe ó ha sido utilizado.");
                            this.MostrarMensajeValidacion(sb.ToString());
                            return;
                        }
                    }
                }
                else
                {
                    numero = this.hidCodigo.Value;
                }

                #endregion

                if (!this.Validar(ref sb))
                {
                    this.MostrarMensajeValidacion(sb.ToString());
                    return;
                }

                MuestraSondaje muestrasondaje = new MuestraSondaje();
                muestrasondaje.CodigoMuestraSondaje = numero;

                muestrasondaje.Desde = double.Parse(this.txtDesde.Value.ToString());
                muestrasondaje.Hasta = double.Parse(this.txtHasta.Value.ToString());
                muestrasondaje.CodigoGeologo = int.Parse(this.ddlGeologo.SelectedValue.ToString());
                muestrasondaje.CodigoTomadorMuestra = int.Parse(this.ddlTomadorMuestra.SelectedValue.ToString());
                muestrasondaje.FechaEnvio = this.rdpFechaEnvio.SelectedDate;
                muestrasondaje.Observacion = this.rtxtDescripcion.Text.Trim();
                muestrasondaje.CodigoTipoControlCalidad = int.Parse(this.ddlTipoControlCalidad.SelectedValue.ToString());

                //muestrasondaje.CodigoMuestraSondajeDuplicado = (this.lblDuplicado.Text == string.Empty) ? null : this.lblDuplicado.Text;
                muestrasondaje.CodigoMuestraSondajeDuplicado = (this.ddlMuestraDuplicada.SelectedValue.CompareTo("0") == 0) ? null : this.ddlMuestraDuplicada.SelectedValue;

                muestrasondaje.ValorAg = float.Parse("-1");
                muestrasondaje.ValorPb = float.Parse("-1");
                muestrasondaje.ValorZn = float.Parse("-1");
                muestrasondaje.ValorCu = float.Parse("-1");
                muestrasondaje.ValorFe = float.Parse("-1");

                muestrasondaje.CodigoSondaje = int.Parse(this.hidCodigoSondaje.Value);
                muestrasondaje.Estado = enmEstadoMuestraSondaje.Registrado.GetHashCode();

                string result = string.Empty;
                using (var proxy = new SEMuestraSondajeClient("BasicHttpBinding_ISEMuestraSondaje"))
                {
                    if (this.hidCodigo.Value.CompareTo("0") == 0)

                        result = proxy.InsertarMuestraSondaje(muestrasondaje);

                    else

                        result = proxy.ModificarMuestraSondaje(muestrasondaje);
                }

                if (result.CompareTo("Registrado") != 0)
                {
                    MostrarMensajeValidacion(result);
                    return;
                }

                this.MostrarMensaje(MSG_OK_GRABAR);
                this.mpRegistro.Hide();
                Listar();
            }
            catch (Exception ex)
            {
                MostrarMensajeValidacion(MSG_ERROR_GRABAR);
                Logger.Error("MuestraSondaje:Guardar", ex);
            }
        }

        protected void ibtnGuardar_Click(object sender, ImageClickEventArgs e)
        {
            this.Guardar();
        }

        protected void ibtnCancelar_Click(object sender, ImageClickEventArgs e)
        {
            this.mpRegistro.Hide();
        }

        [WebMethod]
        public static List<SearchBoxData> GetResults(SearchBoxContext context)
        {
            List<SearchBoxData> data = null;
            using (SEMuestraSondajeClient proxy = new SEMuestraSondajeClient("BasicHttpBinding_ISEMuestraSondaje"))
            {
                var lista = proxy.BuscarMuestraSondajePorcodigo(1, context.Text).ToList();
                data = lista.Select(x => new SearchBoxData { Value = x.CodigoMuestraSondaje.ToString(), Text = x.CodigoMuestraSondaje }).ToList();
            }

            return data;
        }

        protected void rsbMuestra_Search(object sender, SearchBoxEventArgs e)
        {
            //this.lblDuplicado.Text = string.Empty;

            //if (e.Value != null)
            //{
            //    this.lblDuplicado.Text = e.Text;
            //}
        }

        protected void ibtnFinalizar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                string result = string.Empty;
                using (var proxy = new SESondajeClient("BasicHttpBinding_ISESondaje"))
                {
                    result = proxy.FinalizarCumplimiento(int.Parse(this.hidCodigoSondaje.Value), enmTipoAnalisis.Muestra.GetHashCode());
                }

                if (result.CompareTo("Cumplido") != 0)
                    MostrarMensaje(result, enmTipoMensajeMostrar.Error);
                else
                    MostrarMensaje(result);

                CargarSondaje();
                Listar();
            }
            catch (Exception ex)
            {
                MostrarMensaje(MSG_ERROR_GENERICO, enmTipoMensajeMostrar.Error);
                Logger.Error("Litologia:ibtnFinalizar_Click", ex);
            }
        }

        protected void rgLista_ItemDataBound(object sender, GridItemEventArgs e)
        {
            try
            {
                if (e.Item.ItemType == GridItemType.Item || e.Item.ItemType == GridItemType.AlternatingItem)
                {
                    GridDataItem item = (GridDataItem)e.Item;
                    if (this.hidEstadoSondaje.Value.CompareTo(enmEstadoSondaje.Finalizado.GetHashCode().ToString()) == 0 ||
                        this.hidCumplimiento.Value.CompareTo(enmEstadoCumplimiento.Cumplido.GetHashCode().ToString()) == 0)
                    {
                        ImageButton btnEliminar = (ImageButton)item["btnEliminar"].Controls[0];
                        btnEliminar.ToolTip = BUTTON_TOOLTIP_DESHABILITADO;
                        btnEliminar.Enabled = false;

                        ImageButton btnEditar = (ImageButton)item["btnEditar"].Controls[0];
                        btnEditar.ToolTip = BUTTON_TOOLTIP_DESHABILITADO;
                        btnEditar.Enabled = false;
                    }
                }
            }
            catch (Exception ex)
            {

                Logger.Error("MuestraSondaje:rgLista_ItemDataBound", ex);
            }
        }

        protected void ddlMuestraDuplicada_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                if (this.ddlMuestraDuplicada.SelectedValue.CompareTo(TipoDropDownList.Seleccionar.GetHashCode().ToString()) != 0)
                {
                    using (var proxy = new SEMuestraSondajeClient("BasicHttpBinding_ISEMuestraSondaje"))
                    {
                        var muestra = proxy.ObtenerMuestraSondaje(this.ddlMuestraDuplicada.SelectedValue);
                        if (muestra != null)
                        {
                            this.txtDesde.Text = muestra.Desde.ToString();
                            this.txtHasta.Text = muestra.Hasta.ToString();
                            this.ddlGeologo.SelectedValue = muestra.CodigoGeologo.ToString();
                            this.ddlTomadorMuestra.SelectedValue = muestra.CodigoTomadorMuestra.ToString();
                            if (muestra.FechaEnvio != null)
                                this.rdpFechaEnvio.SelectedDate = (DateTime)muestra.FechaEnvio;
                            else
                                this.rdpFechaEnvio.SelectedDate = null;
                            this.rtxtDescripcion.Text = muestra.Observacion;
                        }
                    }
                }
            }
            catch (Exception ex)
            {

                Logger.Error("MuestraSondaje:ddlMuestraDuplicada_SelectedIndexChanged", ex);
            }

        }

        private void HabilitarDuplicados(bool estado)
        {
            this.txtDesde.Enabled = estado;
            this.txtHasta.Enabled = estado;
            this.ddlGeologo.Enabled = estado;
            this.ddlTomadorMuestra.Enabled = estado;
            this.rdpFechaEnvio.Enabled = estado;
            this.rtxtDescripcion.Enabled = estado;
        }

        protected void rgLista_PageSizeChanged(object sender, GridPageSizeChangedEventArgs e)
        {
            this.Listar();
        }
    }
}